home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: Greatest Hits 1996 / Amiga Games: Greatest Hits 1996.iso / userbox / publicdomain / edspell / ispell / ispell.doc < prev    next >
Text File  |  1995-01-31  |  11KB  |  264 lines

  1.               This is the README file for the distribution of
  2.                ISpell Version 3.3LJR with ARexx Server Mode!
  3.                          Fri Nov 20 01:16:13 1992
  4.                             by Loren J. Rittle
  5.  
  6.  
  7. IMPORTANT NOTE:
  8. Additions and modifications copyright (C) 1990, 1991, 1992  Loren J. Rittle.
  9. Special thanks to Tom Rokicki of Radical Eye Software for the MinRexx code.
  10. Thanks to Mike Meyer for the mg interface to ISpell.
  11. Thanks to Willy G. J. Langeveld for enhanced TurboText interface to ISpell.
  12. Thanks to Christopher A. Wichura for the TurboText interface to GUISpell.
  13. Thanks to Steve Koren for the GNU EMACS interface to ISpell.
  14. Thanks to all who hacked on ISpell before me.  In particular,
  15.     Luis Soltero and Tom Rokicki worked on the Amiga port before I
  16.     added the ARexx port.
  17. Original version of ISpell copyright (C) 1983  Pace Willisson.
  18. Permission for non-profit use is hereby granted.
  19. All other rights reserved.
  20.  
  21. Currently, the TurboText interface to ISpell contributed by Willy L.
  22. *may* be broken.  My fault, not Willy's.  This problem, if it exists,
  23. will be addressed in a soon to be released update.  The reason that
  24. this couldn't be avoided/fixed before public release is due to the
  25. fact that I currently have no way to make things privately available
  26. via ftp from within my work site (in the name of security :-( ).
  27. I don't have TurboText and thus couldn't test it myself.  I tried to
  28. hack his macros to conform to the new method, but who knows if I
  29. got it right?  I have been dragging my feet on this release for
  30. too long and thus decided to get it out the door! :-)
  31.  
  32. GUISpell is now included with the ISpell distribution.  GUISpell and
  33. all other included interfaces (vlt, shell, wshell, ced) were done by myself.
  34.  
  35. This release of ISpell requires AmigaOS 2.04 or later.
  36.  
  37. ANOTHER *REAL* IMPORTANT NOTE:
  38. This is the first distribution of ISpell (that I know of, at least)
  39. that has been compiled with SAS/C v6.0 instead of SAS/C v5.x.
  40. Because v5.x and v6.0 use different bit field ordering, all
  41. old hashed dictionaries need to be regenerated from source (dict.2 or
  42. dict.191, etc) via the buildhash command.  Hopefully, people with
  43. smaller machines will be able to obtain the new ispell.hash file
  44. from the same place you got this distribution.
  45.  
  46. FINAL IMPORTANT NOTE:
  47. Currently, the Amiga version of ISpell is my pet project.  You get source,
  48. but if you make any neat (or useful) enhancements it would probably be best
  49. if you were to send them to me for inclusion in the next major release.
  50. Your input will be plainly acknowledged in the README file and greatly
  51. appreciated by myself and users of the Amiga version of ISpell everywhere.
  52. I will take anything:  new or improved front ends, new features,
  53. improvements in WorkBench support (currently nil:).
  54.  
  55. To install ISpell from binary:
  56.     a) Unlharc this archive (you most likely did this if you are
  57.        reading this).
  58.     b) copy c/ispell to c:
  59.     c) copy c/GUISpell to c:
  60.     d) copy s/ispell.hash to s:
  61.     e) make sure that the t: logical assign exists.
  62.     f) look at README's in the interfaces/ directory tree.
  63.        Follow any directions related to an interface you would
  64.        like to install.
  65.     g) Read notes below.
  66.  
  67. To install ISpell from source:
  68.     Takes some work these days. :-)
  69.     a) cd ISpell & smake
  70.     b) cd interfaces/GUISpell-1.1 & smake
  71.     c) install as above (except get binaries from the source directory)
  72.  
  73. Memory requirements to run ISpell:
  74. The ISpell dictionary comes in several flavors.  The big dictionary
  75. distribution requires an amiga w/ LOTS of ram.  To compile the dict.2
  76. version you will need 1.4 megs of ram.  To run this version you need 750k.
  77. This dictionary supports Capitalization mode.  Currently dict.2 is the only
  78. one shipped with the ISpell package.
  79.  
  80. Notes on the ARexx Server Mode of ISpell:
  81.  
  82.     Quick Overview of Servers
  83.  
  84. Servers are a big deal in the UNIX world.  I like the way things work under
  85. UNIX most of the time, the way servers work under UNIX is no exception.  A
  86. server is a program that stays in core waiting for requests from other
  87. programs.  In general, when a server receives a request for service, it
  88. performs a given action or a sequence of actions and then replies to the
  89. requester.  The requests to the server can come from a number of sources:
  90. front-end client programs running on the local host (with any type of
  91. message passing scheme, e.g.  EXEC's or ARexx's message passing facility)
  92. or a remote host (with the appropriate networking software, e.g.  TCP/IP),
  93. and directly from the user via some form of command line (e.g.  via ARexx).
  94.  
  95. Some advantages to usings servers instead of classic approaches are as
  96. follows,
  97.  
  98.   1.  The client and the server can be run on different machines with the
  99.       appropriate networking software.
  100.  
  101.   2.  User can customize the front-end (client) software without having
  102.       to know how the server works internally.  User must only know
  103.       the client-server interface.
  104.  
  105.   3.  Servers can sometimes perform a given operation much faster than
  106.       the standard load, run, terminate cycle.  For example, if one wants
  107.       to spell check even one word with ISpell about 700KB of information
  108.       must be loaded into memory.  Later, if another single word must be
  109.       checked, then the entire 700KB of data must be reloaded into memory.
  110.       With ISpell's new server mode, small client programs can connect
  111.       up with the running ISpell server to spell check words or documents,
  112.       while avoiding the reload time.
  113.  
  114.     Overview of the ARexx Server Mode of ISpell
  115.  
  116. By no surprise, currently under the AmigaOS client-server relations are
  117. most easily implemented with ARexx.  Requests and replies take the form of
  118. ARexx messages.  The only limitation of using ARexx in order to implement
  119. client-server relations is that the client and the server must run on the
  120. same Amiga.  Hopefully, this restriction will be lifted with the advent of
  121. support on the Amiga for real networking protocols (TCP/IP and others).
  122.  
  123. ISpell can be started up in server mode with the following command:
  124.  
  125.     run <nil: >nil: ispell -r <nil: >nil:
  126.  
  127. Once the server has been started, it is a good idea to wait for the ISpell
  128. ARexx port to show up before trying to use it.  The ISpell's ARexx port
  129. name is IRexxSpell and the easiest way to wait for it's arrival is with the
  130. following command,
  131.  
  132.     waitforport 'IRexxSpell'
  133.  
  134. For thoses of you who are excited to see the ISpell ARexx server work type,
  135.  
  136.     rx "options results;address 'IRexxSpell' check ites;say result"
  137.  
  138. at a Shell prompt.
  139.  
  140. You should see the computer respond with,
  141.  
  142.     & BITES CITES ICES IRES ITEM ITEMS ITS KITES RITES SITES TIES
  143.  
  144. Or, if you have installed the ARexx front-end scripts into your REXX:
  145. directory then try typing,
  146.  
  147.     spell ites
  148.  
  149. The computer should respond with,
  150.  
  151.     The word 'ites' is not found. Try these words: bites cites ices 
  152.     ires item items its kites rites sites ties
  153.  
  154. Please see the README's interfaces/ directory tree for other interfaces
  155. available.
  156.  
  157. Feel free to write your own front-ends or modify the ones that I have
  158. supplied.  Below are the ARexx commands that ISpell knows how to respond
  159. to.  See my examples in the rexx directory for exact usage.  Have fun and
  160. please give the improved or new front-ends to ISpell away for all to see
  161. and play with.
  162.  
  163.  
  164.      Commands that the ISpell Server Will Respond To
  165.  
  166. ADD <word>         ---  Adds a word to the `global personal dictionary'
  167.               and immediately save the personal dictionary
  168.               to disk.
  169.  
  170. QUICKADD <word>      ---  Adds a word as above, without saving changes
  171.               to the file on disk.  An ADD command will
  172.               record any QUICKADD's since the last ADD.
  173.               If the server is shut down (or the Amiga's
  174.               power is lost), then all QUICKADD'ed words
  175.               are lost if no ADD was performed.
  176.  
  177. CHECK <word>         ---  The ISpell server checks the stated word in its
  178.               dictionary and returns a string that describes
  179.               if the word was found or, if not, replacements.
  180.               This return string is documented in man/ispell.1,
  181.               it is the same as if words were piped in via
  182.               standard in. See rexx/spell.rexx and
  183.               rexx/ced/WordSpell.ced for how to parse the
  184.               returned string in ARexx.
  185.  
  186. Excerpt taken from man/ispell.1:
  187. If the word was found in the main dictionary, or your personal dictionary,
  188. then the line contains only a '*'.  If the word was found through suffix
  189. removal, then the line contains a '+', a space, and the root word.  If the
  190. word is not in the dictionary, but there are near misses, then the line
  191. contains an '&', a space, and a list of the near misses separated by
  192. spaces.
  193.  
  194. Also, each near miss is capitalized the same as the input word if unless
  195. such capitalization is illegal; in the latter case each near miss is
  196. capitalized correctly according to the dictionary.  Finally, if the word
  197. neither appears in the dictionary, and there are no near misses, then the
  198. line contains only a '#'.  This mode is also suitable for interactive use
  199. when you want to figure out the spelling of a single word.
  200.  
  201. QUICKCHECK <word>    ---  As above, but only checks to see if the
  202.               word is in the dictionary.  Does not try
  203.               to find close matches, etc.  See
  204.               rexx/ced/QuickWordSpell.ced for Usage.
  205.               Will return the string 'ok' or 'bad'
  206.               depending on if the word is found or not.
  207.  
  208. LOOKUP <word>         ---  Looks up word (really a grep pattern).
  209.               See rexx/lookup.rexx for usage.  `.*' is
  210.               the match anything wild-card :-). `.' is
  211.               the match one character wild-card, see a
  212.               manual on grep or src/regex.c for more
  213.               information.
  214.  
  215. FILECHECK <filename> ---  The ISpell server checks the named file, returns
  216.               the filename of a temporary file that contains
  217.               a list of words not found in the dictionary.
  218.               The client is required to delete the temporary
  219.               file when done with it.  Be sure to include the
  220.               complete path in the filename as there are no
  221.               good ways to know the current directory of the
  222.               ISpell server.  See rexx/spellfile.rexx and
  223.               rexx/ced/Spell.ced for usage.
  224.  
  225. EXTENDEDFILECHECK <filename> ---  The ISpell server checks the named file
  226.               and return the list of mispelled words and
  227.               locations in a stem variable called ispellresult.
  228.  
  229.               On return:
  230.               ispellresult. is the stem name.
  231.               ispellresult.count is the number of errors.
  232.               ispellresult.1.word is the first word in error.
  233.               ispellresult.1.line is the line position of the
  234.                         first word in error.
  235.               ispellresult.1.column is the column position of
  236.                         the first word in error.
  237.               ispellresult.j.word is the j'th word in error.
  238.               ispellresult.j.line is the line position of the
  239.                         j'th word in error.
  240.               ispellresult.j.column is the column position of
  241.                         the j'th word in error.
  242.  
  243.               This is a real hack.  Please expect this to
  244.               be cleaned up.  There may be bugs here.  Not
  245.               well tested.  Be careful.  Etc...
  246.  
  247. VERSION             ---  The ISpell server replies with its version string
  248.               and a line of the currently compiled in ARexx
  249.               commands that it will response to.
  250.  
  251. EXIT             ---  Causes the ISpell server to terminate after
  252.               replying to the request.
  253.  
  254.  
  255. Please direct comments and bug reports to
  256.  
  257.   Loren J. Rittle <rittle@comm.mot.com>
  258.  
  259.   1008 Landing Rd.
  260.   Naperville, IL  60540
  261.  
  262.   wk: (708) 576-7794
  263.   hm: (708) 420-7942
  264.